<?php

/**
 * @file
 *  计划任务默认文件，当执行没有在 hook_cronjobs 中定义的任务(可往 cron 表写入自定义任务，而无需在 hook_cronjobs 中定义)时
 *  调用本文件以使任务在后台进行
 * @param
 *  $_args['dida_cron_id'] cron 表中的 id
 */

__cron_default_script();

function __cron_default_script() {
  global $_args;

  if (empty($_args['dida_cron_id'])) {
    message('dida_cron_id 不能为空');
    return;
  }

  if (!$cron = db_query('SELECT * FROM {cron} WHERE cid = ?',
  array($_args['dida_cron_id']), array('limit' => 1, 'return' => 'one'))) {
    message('cron 记录不存在');
    return;
  }

  if ($cron->status == 2) {
    message('任务已执行完成');
    return;
  }

  $cron->data = unserialize($cron->data);

  // 回调函数
  if (!empty($cron->data['call_func']) && function_exists($cron->data['call_func'])) {
    if ($success_data = $cron->data['call_func']($cron->data['param'])) {
      if (!empty($cron->data['success_func']) && function_exists($cron->data['success_func'])) {
        $cron->data['success_func']($success_data);
      }
    }
  }
}

